Skip to content

fix: Fix incorrect edge table state when transforming between bundled and unbundled#28

Merged
zhanglei1949 merged 6 commits intomainfrom
fix-etable-trans
Mar 19, 2026
Merged

fix: Fix incorrect edge table state when transforming between bundled and unbundled#28
zhanglei1949 merged 6 commits intomainfrom
fix-etable-trans

Conversation

@zhanglei1949
Copy link
Collaborator

@zhanglei1949 zhanglei1949 commented Mar 11, 2026

Fix #58

@zhanglei1949 zhanglei1949 marked this pull request as draft March 11, 2026 07:26
Louyk14 pushed a commit that referenced this pull request Mar 12, 2026
Use cibuildwheel to build wheels for all platforms and archs.
@zhanglei1949 zhanglei1949 marked this pull request as ready for review March 16, 2026 03:48
@zhanglei1949
Copy link
Collaborator Author

@greptile

@zhanglei1949
Copy link
Collaborator Author

@greptile

@zhanglei1949 zhanglei1949 requested review from liulx20 and lnfjpt March 16, 2026 07:45
@zhanglei1949
Copy link
Collaborator Author

Waiting string propblem to be resolved.

@zhanglei1949
Copy link
Collaborator Author

@greptile

fix test

fix test

fix test

fix

revert changes

fix

fix

fix

fix test name

address greptile issues
@zhanglei1949
Copy link
Collaborator Author

@greptile

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

zhanglei1949 has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@lnfjpt
Copy link
Collaborator

lnfjpt commented Mar 19, 2026

@greptile

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

zhanglei1949 has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@zhanglei1949 zhanglei1949 requested a review from Copilot March 19, 2026 03:02
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes inconsistent internal EdgeTable state transitions when edge properties are added/dropped, preventing unintended flips between bundled and unbundled storage (Fix #58).

Changes:

  • Update EdgeTable schema-alter paths to correctly rebuild CSR/Table when adding/dropping properties (including empty ↔ bundled ↔ unbundled transitions).
  • Improve handling for bundled empty edge data and unsupported type reporting/behavior in CSR creation/insertion helpers.
  • Add/extend regression tests in both Python DDL tests and C++ storage tests to validate transitions and capacity/size invariants.

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tools/python_bind/tests/test_ddl.py Adds a DDL regression test for dropping/adding edge table columns across reopen.
tests/storage/test_vertex_table.cc Minor formatting fix (brace alignment) to keep tests consistent.
tests/storage/test_edge_table.cc Adds extensive transition tests and strengthens assertions around bundled/unbundled size/capacity behavior.
src/storages/graph/edge_table.cc Implements the core fix: rebuild logic for bundled/unbundled conversions during Add/DeleteProperties; adjusts CSR creation/edge insertion behavior.
include/neug/storages/graph/edge_table.h Updates the bundled-CSR rebuild helper signature to support conversion using a remaining column.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

zhanglei1949 has reached the 50-review limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@zhanglei1949 zhanglei1949 merged commit 46dd54d into main Mar 19, 2026
17 checks passed
liulx20 pushed a commit to liulx20/neug that referenced this pull request Mar 20, 2026
… and unbundled (alibaba#28)

Fix incorrect edge table state when transforming between bundled and unbundled, include special case for string properties
longbinlai added a commit that referenced this pull request Mar 20, 2026
* add java sdk

* add test cases

* Update tools/java_driver/USAGE.md

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Update tools/java_driver/USAGE.md

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix some issues

* add ClientTest

* update doc

* fix doc

* Update tools/java_driver/pom.xml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update tools/java_driver/src/test/java/org/alibaba/neug/driver/InternalResultSetTest.java

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* format

* rename org to com

* fix doc

* add result metadata

* fix

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* add tests

* add doc

* add maven

* Update tools/java_driver/src/main/java/com/alibaba/neug/driver/utils/Client.java

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Update tools/java_driver/src/main/java/com/alibaba/neug/driver/internal/InternalResultSet.java

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* add e2e ci

* add param test

* format

* Update tools/java_driver/src/main/java/com/alibaba/neug/driver/internal/InternalSession.java

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Update InternalSession.java

* remove pb generated

* fix doc

* fix doc

* fix doc

* fix workflows

* fix version

* fix generator

* fix maven action

* fix: catch OSError in neug-cli readline history loading on macOS (#75)

* fix: catch OSError in neug-cli readline history loading on macOS

On macOS, Python's readline module is backed by libedit instead of GNU
readline. When ~/.neug_history was written by a GNU readline session
(e.g. from Docker/Linux), libedit raises OSError (errno 22 EINVAL)
instead of silently handling the incompatible format.

The original code only caught FileNotFoundError, causing neug-cli to
crash on startup. Broaden the exception handler to also catch OSError so
the history file is simply skipped, matching the intended behavior.

Fixes #74

* fix: scope OSError catch to errno.EINVAL for libedit incompatibility

Per greptile review: catching the full OSError base class could silently
swallow unrelated errors such as PermissionError or IsADirectoryError.
Narrow the catch to only suppress errno.EINVAL (22), which is the specific
error raised by macOS libedit when it encounters a GNU readline history
file. All other OSError variants are re-raised so users see genuine
problems.

Also add 'import errno' to top-level imports.

* Update tools/java_driver/src/main/java/com/alibaba/neug/driver/internal/InternalDriver.java

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix getBigDecimal

* Update tools/java_driver/src/main/java/com/alibaba/neug/driver/internal/InternalResultSet.java

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Update tools/java_driver/src/main/java/com/alibaba/neug/driver/internal/InternalResultSet.java

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix getObject

* feat: Support Export Query Results to JSON/JSONL file (#60)

* support export arrow table to csv format

Committed-by: Xiaoli Zhou from Dev container

* export query response PB to csv format

Committed-by: Xiaoli Zhou from Dev container

* minor fix according to review

Committed-by: Xiaoli Zhou from Dev container

* fix according to review

Committed-by: Xiaoli Zhou from Dev container

* minor fix

Committed-by: Xiaoli Zhou from Dev container

* support export query results to json format

Committed-by: Xiaoli Zhou from Dev container

* minor fix

Committed-by: Xiaoli Zhou from Dev container

* remove 'newline_delimited' settings and detect jsonl format from path

Committed-by: Xiaoli Zhou from Dev container

Committed-by: Xiaoli Zhou from Dev container

Committed-by: Xiaoli Zhou from Dev container

Committed-by: Xiaoli Zhou from Dev container

* minor fix

Committed-by: Xiaoli Zhou from Dev container

* add export to json tests in CI

Committed-by: Xiaoli Zhou from Dev container

Committed-by: Xiaoli Zhou from Dev container

* Update extension/json/src/json_export_function.cc

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Update extension/json/src/json_export_function.cc

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Update extension/json/src/json_export_function.cc

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* minor fix

Committed-by: Xiaoli Zhou from Dev container

* minor fix

Committed-by: Xiaoli Zhou from Dev container

* refine extension tests anotation

Committed-by: Xiaoli Zhou from Dev container

* minor fix

Committed-by: Xiaoli Zhou from Dev container

* rename INSTALL_EXTENSIONS to CI_INSTALL_EXTENSIONS to avoid conflict

Committed-by: Xiaoli Zhou from Dev container

* refine json extension tests ci

Committed-by: Xiaoli Zhou from Dev container

* minor fix

Committed-by: Xiaoli Zhou from Dev container

Committed-by: Xiaoli Zhou from Dev container

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* remove bytearray

* add codegraph-qa skill (#78)

* fix: Fix default value support for all type of properties (#63)

Refactor the default value support for storage, avoid exposing default_value on column and mmap_array


---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix: Fix incorrect edge table state when transforming between bundled and unbundled (#28)

Fix incorrect edge table state when transforming between bundled and unbundled, include special case for string properties

* fix: make the dedup operator cover all column types (#80)

* make dedup operator cover all column types

* format

* fix

* Correct the is_optional interface behavior for certain columns (#90)

* add a codegraph example (#87)

Co-authored-by: Longbin Lai <longbin.lai@gmail.com>

* add checkRowIndex

* add update_was_null

* update doc

* fix

* update doc

* fix

* Implement the iteration method for QueryResult

* update query_result.md

* update

* update doc

* format example

* format

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Longbin Lai <longbin.lai@gmail.com>
Co-authored-by: Xiaoli Zhou <yihe.zxl@alibaba-inc.com>
Co-authored-by: BingqingLyu <bingqing.lbq@alibaba-inc.com>
Co-authored-by: Zhang Lei <xiaolei.zl@alibaba-inc.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Inconsistent state reached when switch between bundled and unbundled EdgeTable by deleting/adding properties

4 participants